package com.ruoyi.system.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 价格设置对象 water_priceconfig
 *
 * @author ruoyi
 * @date 2025-09-17
 */
public class WaterPriceconfig extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** id */
    private Long id;

    /** 公司编号 */
    @Excel(name = "公司编号")
    private String companyId;

    /** 公司名称 */
    @Excel(name = "公司名称")
    private String companyName;

    /** 价格编号 */
    @Excel(name = "价格编号")
    private String priceCode;

    /** 价格名称 */
    @Excel(name = "价格名称")
    private String priceName;

    /** 启用阶梯价 */
    @Excel(name = "启用阶梯价")
    private Integer isUsed;

    /** 阶梯价类型 */
    private Integer ladderType;

    /** 阶梯数 值范围为1-5，仅当启用阶梯价时有效 */
    @Excel(name = "阶梯数 值范围为1-5，仅当启用阶梯价时有效")
    private Integer ladder;

    /** 结算周期 */
    @Excel(name = "结算周期")
    private String settlementType;

    /** 结算月 */
    @Excel(name = "结算月")
    private Integer settlementMonth;

    /** 结算日 */
    @Excel(name = "结算日")
    private Integer settlementDay;

    /** 阶梯价格1 */
    @Excel(name = "阶梯价格1")
    private BigDecimal price1;

    /** 阶梯价格2 */
    @Excel(name = "阶梯价格2")
    private BigDecimal price2;

    /** 阶梯价格3 */
    @Excel(name = "阶梯价格3")
    private BigDecimal price3;

    /** 阶梯水量1 */
    private Integer waterCons1;

    /** 阶梯水量2 */
    private Integer waterCons2;

    /** 污水处理费 */
    private BigDecimal sewageFee;

    /** 不征税自来水 */
    private BigDecimal noTax;

    /** 综合水价 */
    private BigDecimal waterPrice;

    /** 阶梯周期开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "阶梯周期开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date periodStartDate;

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }
    public void setCompanyId(String companyId)
    {
        this.companyId = companyId;
    }

    public String getCompanyId()
    {
        return companyId;
    }
    public void setCompanyName(String companyName)
    {
        this.companyName = companyName;
    }

    public String getCompanyName()
    {
        return companyName;
    }
    public void setPriceCode(String priceCode)
    {
        this.priceCode = priceCode;
    }

    public String getPriceCode()
    {
        return priceCode;
    }
    public void setPriceName(String priceName)
    {
        this.priceName = priceName;
    }

    public String getPriceName()
    {
        return priceName;
    }
    public void setIsUsed(Integer isUsed)
    {
        this.isUsed = isUsed;
    }

    public Integer getIsUsed()
    {
        return isUsed;
    }

    public Integer getLadderType() {
        return ladderType;
    }

    public void setLadderType(Integer ladderType) {
        this.ladderType = ladderType;
    }

    public void setLadder(Integer ladder)
    {
        this.ladder = ladder;
    }

    public Integer getLadder()
    {
        return ladder;
    }
    public void setSettlementType(String settlementType)
    {
        this.settlementType = settlementType;
    }

    public String getSettlementType()
    {
        return settlementType;
    }
    public void setSettlementMonth(Integer settlementMonth)
    {
        this.settlementMonth = settlementMonth;
    }

    public Integer getSettlementMonth()
    {
        return settlementMonth;
    }
    public void setSettlementDay(Integer settlementDay)
    {
        this.settlementDay = settlementDay;
    }

    public Integer getSettlementDay()
    {
        return settlementDay;
    }
    public void setPrice1(BigDecimal price1)
    {
        this.price1 = price1;
    }

    public BigDecimal getPrice1()
    {
        return price1;
    }
    public void setPrice2(BigDecimal price2)
    {
        this.price2 = price2;
    }

    public BigDecimal getPrice2()
    {
        return price2;
    }
    public void setPrice3(BigDecimal price3)
    {
        this.price3 = price3;
    }

    public BigDecimal getPrice3()
    {
        return price3;
    }

    public Integer getWaterCons1() {
        return waterCons1;
    }

    public void setWaterCons1(Integer waterCons1) {
        this.waterCons1 = waterCons1;
    }

    public Integer getWaterCons2() {
        return waterCons2;
    }

    public void setWaterCons2(Integer waterCons2) {
        this.waterCons2 = waterCons2;
    }

    public BigDecimal getSewageFee() {
        return sewageFee;
    }

    public void setSewageFee(BigDecimal sewageFee) {
        this.sewageFee = sewageFee;
    }

    public BigDecimal getNoTax() {
        return noTax;
    }

    public void setNoTax(BigDecimal noTax) {
        this.noTax = noTax;
    }

    public void setPeriodStartDate(Date periodStartDate)
    {
        this.periodStartDate = periodStartDate;
    }

    public Date getPeriodStartDate()
    {
        return periodStartDate;
    }

    public BigDecimal getWaterPrice() {
        return waterPrice;
    }

    public void setWaterPrice(BigDecimal waterPrice) {
        this.waterPrice = waterPrice;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("companyId", getCompanyId())
            .append("companyName", getCompanyName())
            .append("priceCode", getPriceCode())
            .append("priceName", getPriceName())
            .append("isUsed", getIsUsed())
            .append("ladder", getLadder())
            .append("settlementType", getSettlementType())
            .append("settlementMonth", getSettlementMonth())
            .append("settlementDay", getSettlementDay())
            .append("price1", getPrice1())
            .append("price2", getPrice2())
            .append("price3", getPrice3())
            .append("waterCons1", getWaterCons1())
            .append("waterCons2", getWaterCons2())
            .append("periodStartDate", getPeriodStartDate())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .toString();
    }
}
